#include<stdio.h>

#define ArraySize(a) sizeof(a) / sizeof(a[0])

// 当数组作为函数参数被传递时，会被弱化为指针

// 丢失数组的容量

void PrintArray( int *a , int size)// 单独传递数组容量
{
    printf("size : %ld\n" , sizeof(a));
    
    // int count = sizeof(a) / sizeof(a[0]);

    for(int i=0;i < size;i++)
    {
        printf("%d ",a[i]);
    }
    printf( "\n");
           
}

int main()
{
    int a[10]={0};
    for (int i =0;i<ArraySize(a);i++)
    {
        a[i]=i+1;
    }
   // PrintArray(a,ArraySize(a));
   
   // &a[0]:数组的首元素的地址
   // a:数组的首元素地址
   
   // &a:步长是整个数组 
   // &a：数组的首地址 
   
   //printf("%p %p\n",a+1,&a[0]+1);
   

   
   //*(a+i) = a[i]
   
   printf("%p %p %p\n",a,&a[0],&a);
   printf("%p %p %p\n",a+1,&a[0]+1,&a+1);
   return 0;
}